package ar.edu.utn.frgp.banco.servlets;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import ar.edu.utn.frgp.banco.domain.Cliente;
import ar.edu.utn.frgp.banco.domain.Cuenta;
import ar.edu.utn.frgp.banco.domain.Prestamo;
import ar.edu.utn.frgp.banco.service.RecursoServiceCliente;
import ar.edu.utn.frgp.banco.service.RecursoServiceCuenta;
import ar.edu.utn.frgp.banco.service.RecursoServicePrestamos;
import ar.edu.utn.frgp.banco.service.impl.RecursoServiceClienteImpl;
import ar.edu.utn.frgp.banco.service.impl.RecursoServiceCuentaImpl;
import ar.edu.utn.frgp.banco.service.impl.RecursoServicePrestamosImpl;
import ar.edu.utn.frgp.banco.servlets.scope.CuentaBean;
import ar.edu.utn.frgp.banco.servlets.scope.MessageBean;
import ar.edu.utn.frgp.banco.servlets.scope.PrestamosBean;


/**
 * Servlet implementation class ClienteServlet
 */
public class Prestamo8VerificarClienteServlet extends GenericServlet {
	private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public Prestamo8VerificarClienteServlet() {
        // TODO Auto-generated constructor stub
    }

	@Override
	public void realizarAccion(HttpServletRequest req, HttpServletResponse resp) throws Exception {
		
		Cliente elCliente = new Cliente();
			
		if((elCliente=(Cliente) req.getSession().getAttribute("cliente"))==null)
		{
		 String dni = (String)req.getParameter("txtDNI");
		 int dnicliente = Integer.parseInt(dni);
	     
		 Cliente  cliente = new Cliente();
		 List<Prestamo> prestamos = new ArrayList<Prestamo>();
		
	     RecursoServiceCliente serviceCliente = new RecursoServiceClienteImpl();
	     RecursoServiceCuenta serviceCuenta = new RecursoServiceCuentaImpl();
	     RecursoServicePrestamos servicePrestamos = new RecursoServicePrestamosImpl();
	     
	     cliente = serviceCliente.listarClientesActivosPorDni(dnicliente);
	     
	     String jsp = "";
			
			if (cliente == null) {
				MessageBean bean = new MessageBean();
				bean.setMensaje("No existe el cliente");
				req.setAttribute("msjBean", bean);
				jsp = "Prestamo8VerificarCliente.jsp";
			}
			else {
				
				req.getSession().setAttribute("cliente", cliente);
				jsp = "Prestamo9SeleccionarCuenta.jsp";
				
				List<Cuenta> cuentas = new ArrayList<Cuenta>();		
				cuentas = serviceCuenta.listarCuentasActivas(cliente.getDni());
				
				CuentaBean beancuenta = new CuentaBean();
		        beancuenta.setCuentas(cuentas);
				
				req.setAttribute("beancuenta", beancuenta);
				
				prestamos = servicePrestamos.listarPrestamosPorCliente(dnicliente);
				PrestamosBean bean = new PrestamosBean();
				bean.setNombre("dummy");
				bean.setPrestamos(prestamos);
				
				req.setAttribute("beanprestamos", bean);
			}
		
				req.getRequestDispatcher(jsp).forward(req, resp);

		}
		else
		{
					     
			 Cliente  cliente = new Cliente();
			 List<Prestamo> prestamos = new ArrayList<Prestamo>();
			
		     RecursoServiceCliente serviceCliente = new RecursoServiceClienteImpl();
		     RecursoServiceCuenta serviceCuenta = new RecursoServiceCuentaImpl();
		     RecursoServicePrestamos servicePrestamos = new RecursoServicePrestamosImpl();
		     
		     cliente = serviceCliente.listarClientesActivosPorDni(elCliente.getDni());
		     
		     String jsp = "";
				
				if (cliente == null) {
					MessageBean bean = new MessageBean();
					bean.setMensaje("No existe el cliente");
					req.setAttribute("msjBean", bean);
					jsp = "Prestamo8VerificarCliente.jsp";
				}
				else {
					
					req.getSession().setAttribute("cliente", cliente);
					jsp = "Prestamo9SeleccionarPrestamo.jsp";
					
					List<Cuenta> cuentas = new ArrayList<Cuenta>();		
					cuentas = serviceCuenta.listarCuentasActivas(cliente.getDni());
					
					CuentaBean beancuenta = new CuentaBean();
			        beancuenta.setCuentas(cuentas);
					
					req.setAttribute("beancuenta", beancuenta);
					
					prestamos = servicePrestamos.listarPrestamosPorCliente(elCliente.getDni());
					PrestamosBean bean = new PrestamosBean();
					bean.setNombre("dummy");
					bean.setPrestamos(prestamos);
					
					req.setAttribute("beanprestamos", bean);
				}
			
					req.getRequestDispatcher(jsp).forward(req, resp);
			
		}
		
		
	}
	
}
